Many larger modern data processing and data switching systems are distributed processing systems consisting of a number of physically separated data processing or data switching facilities. These data processing or data switching facilities are frequently interconnected in a local data network. In a local data network, the data processing or data switching facilities are located within individual entities or nodes which are connected to a common transmission or data network medium such as a coaxial cable. Facilities located within different nodes communicate by transmitting data messages, usually in the form of limited length packets of data, over the medium.
A local data network is frequently used in systems having a moderate community of data processing interest among the interconnected data processing or data switching host processors (main frames) at each node and requiring the flexible exchange of a substantial quantity of data among these host processors. Networks of such systems frequently require flexible message interconnection arrangements in which some messages must be sent to several nodes. In order to handle this requirement, some prior art systems have used destination addressing to route packets of data. Here, each packet contains a destination address and each node is prepared to examine every packet to see if the destination address matches one of the addresses of packets that are received by that node. This capability permits a single message to be received by one or a set of nodes. Local data networks including this type of facility are described in D. D. Clark et al.: An Introduction to Local Area Networks, Proceedings of the IEEE, V. 67, No. 11, pp. 1497-1517, November, 1978.
In a local data network, each of the host processors in a node is normally executing one or more major tasks called program processes. Processes executing in different nodes communicate with each other by sending a data message, consisting of one or more data packets, over the data network medium. In order for a received message to be processed by a destination program process, the data of the message must generally be stored in an area of memory called the data space of the destination process. In prior art systems, data received at a node must first be stored in a buffer register and then in an intermediate location in memory. These steps may be carried out autonomously without involving the host processor. Subsequently, the host processor examines the received data in the intermediate location in order to identify the destination process and to find an appropriate location in memory, generally in the data space of the destination process. The host processor then causes the received data to be transferred to this appropriate location in memory. The step of storing in an intermediate location and the subsequent examination and transfer steps degrade system performance by delaying the arrival of the received data in the data space of the destination process where it can be processed. The examination and transfer steps use expensive host processor resources and substantially reduce the data processing capacity of these expensive host processors.
Local data networks require reliable data transmission for many or all of their communication needs. In order to achieve such reliable transmission, prior art local data networks require that the host processors in each node devote a substantial portion of their resources to preparing data messages, checking received data messages, verifying that data messages have been properly received by a destination, and initiating retransmission of messages whenever necessary. Acknowledgment messages must be generated and transmitted from a message destination to a message source. Carrying out these functions substantially reduces the data processing capacity of these expensive host processors.
As discussed above, multiple destination messages are frequently required in local data networks. In particular, if duplicate data files, required for reliability, must be updated, the updating message must be sent to each of the nodes containing a copy of the file. Prior art local data networks require an especially heavy expenditure of expensive data processing resources to verify the reception of messages routed to multiple destinations. Each destination node must generate and transmit an acknowledgment message and each of these acknowledgment messages must be examined and related to the other acknowledgment messages received by the source node. Carrying out these functions further reduces the data processing capacity of the expensive host processors.